MACRO(HEADER_DIRECTORIES_SHARED return_list)
    FILE(GLOB_RECURSE new_list  ${PROJECT_SOURCE_DIR}/src/shared/*.h)
    FILE(GLOB_RECURSE new_list_hpp  ${PROJECT_SOURCE_DIR}/src/shared/*.hpp)
   SET(dir_list "")
    FOREACH(file_path ${new_list} ${new_list_hpp})
        GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
        SET(dir_list ${dir_list} ${dir_path})
    ENDFOREACH()
    LIST(REMOVE_DUPLICATES dir_list)
    SET(${return_list} ${dir_list})
ENDMACRO()

MACRO(SOURCE_DIRECTORIES_SHARED return_list)
    FILE(GLOB_RECURSE  new_list  ${PROJECT_SOURCE_DIR}/src/shared/*.cpp)
    SET(dir_list "")
    FOREACH(file_path ${new_list})
        GET_FILENAME_COMPONENT(dir_path ${file_path} PATH)
        SET(dir_list ${dir_list} ${dir_path})
    ENDFOREACH()
    LIST(REMOVE_DUPLICATES dir_list)
    SET(${return_list} ${dir_list})
ENDMACRO()
